package org.hgvc.webapp.ets.spring.service;

import java.util.List;

import org.hgvc.webapp.ets.bo.Agent;
import org.hgvc.webapp.ets.bo.ComplimentaryBooking;
import org.hgvc.webapp.ets.bo.EntitlementLookUpTable;
import org.hgvc.webapp.ets.bo.Member;
import org.hgvc.webapp.ets.bo.MemberBooking;
import org.hgvc.webapp.ets.bo.MemberPointEntitle;
import org.hgvc.webapp.ets.bo.RCIBooking;
import org.hgvc.webapp.ets.bo.RCIBookingDetail;
import org.jocsb.base.exception.BaseException;


public interface BookingService {
	public List<ComplimentaryBooking> getComplimentaryBookingList()throws BaseException;
	public List<ComplimentaryBooking> getComplimentaryBookingList(String searchField,String searchKeyword)throws BaseException;
	public void saveComplimentaryBooking(ComplimentaryBooking complimentaryBooking)throws BaseException;
	public void updateComplimentaryBooking(ComplimentaryBooking complimentaryBooking)throws BaseException;
	
	public void saveRCIBooking(RCIBooking rciBooking)throws BaseException;
	public void updateRCIBooking(RCIBooking rciBooking)throws BaseException;
	public void saveRCIBookingDetail(RCIBookingDetail rciBookingDetail)throws BaseException;
	public void updateRCIBookingDetail(RCIBookingDetail rciBookingDetail)throws BaseException;
	public void deleteRCIBookingDetail(List<RCIBookingDetail> deleteList)throws BaseException;
	public List<RCIBooking> getRCIBookingList()throws BaseException;
	public List<RCIBookingDetail> getRCIBookingDetailList(RCIBooking rciBooking)throws BaseException;
	
	public List<MemberBooking> getMemberBookingList(String bookingStatus)throws BaseException;
	public List<MemberBooking> getMemberBookingList(String searchField,String searchKeyword,String bookingStatus)throws BaseException;
	public void saveMemberBooking(MemberBooking memberBooking)throws BaseException;
	public void updateMemberBooking(MemberBooking memberBooking)throws BaseException;
	
	public List<MemberBooking> getMemberBookingList(Agent agent, String bookingStatus)throws BaseException;
	public List<MemberBooking> getMemberBookingList(Agent agent,String searchField,String searchKeyword,String bookingStatus)throws BaseException;
	
	public List<MemberBooking> getMemberBookingList(Member member, String bookingStatus)throws BaseException;
	public List<MemberBooking> getMemberBookingList(Member member,String searchField,String searchKeyword,String bookingStatus)throws BaseException;
	
	public MemberBooking getMemberBooking(String memberBookingId)throws BaseException;
	
	public List<EntitlementLookUpTable> getEntitlementLookUpTables(String memberId)throws Exception;
	public void saveApprovePendingFinance(MemberBooking memberBooking, String actionNo) throws Exception;
}
